package com.cqupt.service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @auther axb
 * @date 2021/3/18 - 15:57
 */
public interface HostMapService {
    /**
     * 获取所有的拓扑图的名字
     * @return List<Map<String, Object>>
     */
    public List<Map<String, Object>> getNamesOfMap ();

    /**
     * 根据拓扑图名字获取拓扑图中的内容
     * @param name
     * @return
     */
    public List<Map<String, Object>> getMapByName (final String name);

    /**
     * 根据拓扑图id获取拓扑图中的内容
     * @param sysmapid
     * @return
     */
    List<Map<String, Object>> getMapBySysmapid(final String sysmapid);

    /**
     * 根据id删除一个拓扑图
     * @param sysmapid
     * @return
     */
    public Map<String, Object> deleteMapById(final String sysmapid);

    /**
     * 创建一个拓扑图
     * @param params
     * @return
     */
    public Map<String, Object> createMap(Map<String,Object> params);
    // public Map<String, Object> createMap(Map<String,Object> params);

    /**
     * 更新拓扑图
     * @param params
     * @return
     */
    public Map<String, Object> updateMap(Map<String,Object> params);

    /**
     * 获取所有的拓扑图
     * @return
     */
    public List<Map<String, Object>> getAllMap();

    /**
     * 处理拓扑图更新创建所需的参数(注意更新需加入参数sysmapid)
     * @param params
     * @return
     */
    Map<String, Object> handleTopoParams(Map<String, Object> params);

    /**
     * 注意：关于机房机柜的操作目前并未涉及，保留了接口
     **/

    /**
     * 创建机房
     * @param params
     * @return
     */
    int createEngineRoom(Map<String,Object> params);

    /**
     * 更新机房
     * @param params
     * @return
     */
    int updateEngineRoom(Map<String,Object> params);

    /**
     * 删除机房
     * @param params
     * @return
     */
    int deleteEngineRoom(ArrayList<String> params);

    /**
     * 查询机房
     * @param params
     * @return
     */
    List<Map<String, Object>> getEngineRoom(Map<String,Object> params);

    /**
     * 创建机柜
     * @param params
     * @return
     */
    int createCabinet(Map<String,Object> params);

    /**
     * 更新机柜
     * @param params
     * @return
     */
    Map<String, Object> updateCabinet(Map<String,Object> params);

    /**
     * 删除机柜
     * @param params
     * @return
     */
    int deleteCabinet(ArrayList<String> params);

    /**
     * 查询机柜
     * @param params
     * @return
     */
    List<Map<String, Object>> getCabinet(Map<String,Object> params);
}